# 计算素数
#rrprime.global[:size]代表计算的素数数组的长度

$:.unshift File.join(File.dirname(__FILE__),'..','lib')

require 'roadrunner'

rrprime=RoadRunner.new

rrprime.init do

  # rrprime.global是一个存储全局变量的方法
  # 任何数据类型都可以丢进去
  # 在执行report方法时，rrprime.global中的数据会被打印到报告中
  rrprime.global[:size]=1000

  # users决定同时有多少并发用户一起执行action
  # iterations决定每个用户执行多少次
  rrprime.users,rrprime.iterations=10,100
end

rrprime.action do

  # 得到素数数组
  rrprime.global[:result]=(2..rrprime.global[:size]).inject([])  { |s, e| (s.map { |x| e % x }).include?(0) ? s : s << e }
end

rrprime.ended do
  #rrprime.global={}
end

rrprime.run
rrprime.report
